rychle vymazani TListview

Otázka od: david.kopecek@hacktrack.com

24. 7. 2004 10:06

Zdravim

nevite nekdo jak se da rychle vymazat TListview kdyz obsahuje cca
10.000 polozek ?..

lv.beginupdate;
lv.clear;
lv.endupdate;

ma takovej sekavej efekt... zato kdyz v komponente TlistBox ktera ma
cca 20.000 zaznamu dam items.clear; tak to vymaze hodne rychle bez
jakyhokoliv sekani aplikace...

--
S pozdravem,
 david
 david.kopecek@hacktrack.com



Odpovedá: Petr Vones

24. 7. 2004 10:44

From: <david.kopecek@hacktrack.com>
> nevite nekdo jak se da rychle vymazat TListview kdyz obsahuje cca
> 10.000 polozek ?..

Pouzivat TListView ve virtualnim rezimu (OwnerData = True) a data si ukladat v
nejakych vlastnich strukturach. Pak se "vymaze" okamzite treba i pri nekolika
milionech polozek.

Petr Vones


Odpovedá: Andreas Bednarek

24. 7. 2004 11:11

> From: <david.kopecek@hacktrack.com>
> > nevite nekdo jak se da rychle vymazat TListview kdyz obsahuje cca
> > 10.000 polozek ?..
>

Nejlepe pouzivat LV ve virtualnim rezimu, ale podstatne pomuze, kdyz po dobu
mazani polozek das Visible := False. Tusim ze stejne tak pomuze uzavrit
Items.Clear mezi par BeginUpdate/EndUpdate, to by byl lepsi zpusob, ale to
uz si presne nevzpominam, kazdopadne Visible := False pomuze zasadne (ale
pro 10000 polozek to stejne nebude ono...).


Odpovedá: david.kopecek@hacktrack.com

24. 7. 2004 11:48

Ahoj

>> nevite nekdo jak se da rychle vymazat TListview kdyz obsahuje cca
>> 10.000 polozek ?..

PV> Pouzivat TListView ve virtualnim rezimu (OwnerData = True) a data si
ukladat v
PV> nejakych vlastnich strukturach. Pak se "vymaze" okamzite treba i pri
nekolika
PV> milionech polozek.

jo tohle pomohlo...

--
S pozdravem,
 david
 david.kopecek@hacktrack.com